Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案

您所在的位置:网站首页 apt-get search Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案

Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案

2022-05-21 08:55| 来源: 网络整理| 查看: 265

Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案 前言

Elasticsearch、Fluentd与Kibana的组合(EFK)可以进行日志数据的采集、索引、搜索以及可视化。该组合是商业软件Splunk的替代:Splunk在一开始用的时候也是免费的,但如果数据多了则需要收费。

本文介绍如何用该组合构建你的日志解决方案。

前提条件 安装了Ubuntu 14.04的云主机在该主机上具有sudo权限的用户 Elasticsearch的安装配置 安装Java

Elasticsearch需要Java,所以先安装Java。

sudo apt-get update sudo apt-get install openjdk-7-jre-headless --yes

检查一下Java是否成功安装了:

java -version

输出应该是这个样子:

java version "1.7.0_55" OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode) 获取Elasticsearch

下一步,下载Elasticsearch的deb安装包,安装之。

sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb sudo dpkg -i elasticsearch-1.2.2.deb Elasticsearch安全加固

到1.2版本为止,Elasticsearch的动态脚本功能是默认开启的。因为本文将把Kibana仪表盘设置为从公网可以访问,所以为了安全起见最好关闭这个功能。进入/etc/elasticsearch/elasticsearch.yml文件,在末尾加入如下一行内容:

script.disable_dynamic: true 启动Elasticsearch

运行如下命令运行Elasticsearch:

sudo service elasticsearch start Kibana的安装配置 获取Kibana

进入你的用户主目录:

cd ~

输入如下命令以下载Kibana:

curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf - sudo cp -r kibana-3.1.0 /usr/share/ 配置Kibana

我们需要Kibana使用80端口与Elasticsearch进行通讯,而不是默认的9200端口,因此我们需要更改Kibana的配置文件config.js。

用编辑器打开/usr/share/kibana-3.1.0/config.js,找到下面这行:

elasticsearch: "http://"+window.location.hostname+":9200",

把它替换成下面这行:

elasticsearch: "http://"+window.location.hostname+":80", 安装配置Nginx(代理服务器)

我们使用Nginx作为代理服务器,让经过身份认证的用户可以从公网访问Kibana的仪表盘。

首先,安装Nginx:

sudo apt-get install nginx --yes

Kibana自带的nginx.conf写得已经比较好,我们只需要做一点点修改即可。

首先,下载安装配置文件:

wget https://assets.digitalocean.com/articles/fluentd/nginx.conf sudo cp nginx.conf /etc/nginx/sites-available/default

注:该配置文件来源于这个Github仓库。

然后,在编辑器中打开/etc/nginx/sites-available/default,进行如下修改(主要是server_name、access_log、location三部分):

# # 针对Elasticsearch + Kibana的Nginx代理配置 # # 此处将为仪表盘设置密码保护。 # 你也可以考虑为所有路径设置密码。 # # 浏览器在首次触发访问该路径的ajax请求时, # 会弹出用户名/密码的输入框。 # # 如果你使用本功能,请将config.js配置为 http://FQDN:80/ # 取代原来的 http://FQDN:9200 # server { listen *:80 ; server_name localhost; access_log /var/log/nginx/kibana.log; location / { root /usr/share/kibana-3.1.0; index index.html index.htm; }

最后,重启nginx:

$ sudo service nginx restart

现在,在浏览器里打开服务器的IP地址或域名,就应该能看到Kibana的仪表盘了:

Kibana Welcome

Fluentd的安装配置

最后是Fluentd的安装。我们将使用Fluetd的软件包版本td-agent,该软件包由Treasure Data维护。

从td-agent软件包安装Fluentd

使用如下命令安装Fluentd:

wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb sudo dpkg -i td-agent_2.0.4-0_amd64.deb 安装插件

我们需要安装如下几个插件:

out_elasticsearch:该插件将Fluentd的数据流导给Elasticsearch。 outrecordreformer:该插件可以将数据处理成更多格式。

输入以下命令安装插件(第一个apt-get用于安装out_elasticsearch,这会需要服务器上安装过make和libcurl):

sudo apt-get install make libcurl4-gnutls-dev --yes sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer

然后,配置Fluentd以监听syslog并将其发送给Elasticsearch。用编辑器打开/etc/td-agent/td-agent.conf,在文件开头处添加如下内容:

type syslog port 5140 tag system type record_reformer tag elasticsearch facility ${tag_parts[1]} severity ${tag_parts[2]} type copy type stdout type elasticsearch logstash_format true flush_interval 5s #debug 启动Fluentd

输入如下命令启动Fluentd:

sudo service td-agent start 将rsyslog流量转发给Fluentd

Ubuntu 14.04自带了rsyslogd。我们需要对它做一些配置,以将syslog事件转发到Fluentd监听的端口(本文使用了5140端口)。

用编辑器打开/etc/rsyslog.conf(需要sudo权限),在文件首部添加如下内容:

*.* @127.0.0.1:5140

保存退出,重启rsyslogd:

sudo service rsyslog restart 自定义Kibana仪表盘

Kibana默认的仪表盘只显示了最通用的内容,所以可以考虑做一下自定义。以下展示两种方法。

方法1:使用模板(Template)

Fluentd团队提供了另一个Kibana配置文件,如果使用模板进行自定义的话,那么这个配置文件会比Kibana的默认配置好用。运行如下命令以获取该配置文件:

wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json

注:源文件来自这个GitHub gist。

现在到浏览器里刷新页面,应该看到Kibana现在已经根据syslog的严重等级(severity)和程序模块(facility)显示矩形图,并在一个表格里展示出最近的日志内容。

方法2:手动配置

在浏览器里访问Kibana仪表盘首页:

 

选择最下面的Blank Dashboard: I’m comfortable configuring on my own(空白模板):

 

在本页面,点击右侧的+ ADD A ROW(添加行)按钮,会弹出添加新行的配置界面(一个“行”可以包含一个或多个“板块”(panel))。输入一个名称,然后点击Create Row(创建行)按钮,然后点Save(保存)。现在就可以看到新建的行了。

 

空白行创建后,Kibana在页面左侧会提醒Add panel to empty row(在空白行里添加板块)。点击该按钮,会弹出新建板块的配置界面。在下拉餐单中选择histogram(矩形图)。矩形图是时间图表,详见Kibana文档。

 

矩形图的配置涉及很多参数,不过我们可以简单的下拉到页面底部,点击Save按钮。如此,新的板块就创建完毕了。

 

延伸阅读

更多关于Kibana配置的信息,可参阅Kibana文档页。

本文来源自DigitalOcean Community。英文原文:Elasticsearch, Fluentd, and Kibana: Open Source Log Search and Visualization by Kiyoto Tamura



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3